package cn.minimelon.cushaw.service;

import cn.minimelon.bittermelon.bean.LoginUser;
import cn.minimelon.cushaw.entity.SysDatadef;
import cn.minimelon.cushaw.model.DatadefReq;
import org.beetl.sql.core.page.PageResult;

import java.util.List;

public interface SysDatadefService {
    /**
     * 按编码查询
     *
     * @param code 定义编码
     * @return 模型详细，包含字段信息
     */
    SysDatadef selectByCode(String code);

    /**
     * 按UID查询
     *
     * @param uid 定义主键
     * @return 模型主表
     */
    SysDatadef selectById(String uid);

    /**
     * 按主题域查询
     *
     * @param area 域编码
     * @return 模型主表列表
     */
    List<SysDatadef> selectByArea(String area);

    /**
     * 分页查询
     *
     * @param req 分页参数
     * @return 模型主表列表
     */
    PageResult<SysDatadef> selectPage(DatadefReq req);

    void insert(SysDatadef dataDef, LoginUser user);

    int update(SysDatadef datadef, LoginUser user);
}
